// 测试设置文件
import { afterAll, afterEach, beforeAll, vi } from 'vitest'

// Mock Element Plus组件
vi.mock('element-plus', async () => {
  const actual = await vi.importActual('element-plus')
  return {
    ...actual,
    ElButton: {
      template: '<button><slot /></button>',
    },
    ElTable: {
      template: '<table><slot /></table>',
    },
    ElTableColumn: {
      template: '<td><slot /></td>',
    },
    ElCard: {
      template: '<div><slot /></div>',
    },
    ElRow: {
      template: '<div><slot /></div>',
    },
    ElCol: {
      template: '<div><slot /></div>',
    },
    ElTag: {
      template: '<span><slot /></span>',
    },
    ElIcon: {
      template: '<i><slot /></i>',
    },
    ElForm: {
      template: '<form><slot /></form>',
    },
    ElFormItem: {
      template: '<div><slot /></div>',
    },
    ElInput: {
      template: '<input />',
    },
    ElSelect: {
      template: '<select><slot /></select>',
    },
    ElOption: {
      template: '<option><slot /></option>',
    },
    ElPagination: {
      template: '<div><slot /></div>',
    },
    ElDropdown: {
      template: '<div><slot /></div>',
    },
    ElDropdownMenu: {
      template: '<ul><slot /></ul>',
    },
    ElDropdownItem: {
      template: '<li><slot /></li>',
    },
    ElDialog: {
      template: '<div><slot /></div>',
    },
    ElDrawer: {
      template: '<div><slot /></div>',
    },
    ElMessageBox: {
      confirm: vi.fn().mockResolvedValue(true),
    },
    ElMessage: {
      success: vi.fn(),
      error: vi.fn(),
      warning: vi.fn(),
    },
  }
})

// 在所有测试后清理DOM
afterAll(() => {
  // cleanup()
})

// 在每个测试后清理DOM
afterEach(() => {
  // cleanup()
})
